// -1.  3 + 2 +"7"的结果是什么？3 + (2 + "7")的结果又是什么？这两个表达式输出的值是什么类型？数值相加与字符串拼接）
//结果分别是57和30，String类型
// -2.  6 - false的结果是什么？（减法运算符）
//6
// -3.  6 - "false"和6 + "false"的结果分别是什么？结果输出值是什么数据类型？（减法运算符和加法运算符的不同）
//6,Number类型   '6false',String类型
// -4. 请分析console.log(1 + - + + + - + 1)的结果？（一元运算符的运行顺序）
//有2个'-'号，负负得正
// - 5.下面代码分别输出什么？前自增(自减)与后自增(自减)的区别？（自增自减）
// let a = 1;
// let b = ++a + ++a;
// console.log(a);//3
// console.log(b);//5

// - 6.分析下面代码，请问 j 和 y 分别是多少？(不要运行代码，自己分析后写出答案)（自增自减）
// var i = 100;
// i++;
// j = i++;
// y = ++j;

// console.log(j)//101
// console.log(y)//103

// - 7.JS中哪些值通过Boolean对象转换出来的值为`false`?
// false、0、NaN、""、null、undefined

// - 8.分析下面代码的结果并解释原因。（短路运算）
// let a = 1;
// let b = 2;

// console.log(a && b);//2 与运算会运行完所有操作数
// console.log(a || b);//1 短路或第个为真就停止执行

// - 9.以下代码输出的结果分别是什么？（短路运算）
// let a = true && "" && 12306;
// let b = false || "" || undefined || "bluej" || 12306;
// console.log(a);//false
// console.log(b);//bluej

// - 10.分析下面代码，分别输出什么？(以注释形式写在console.log后面)（== 和 ===）

// let str = "12306";
// let str1 = 1;
// let num = 12306;
// let boo = true;

// console.log(str == num);//true
// console.log(str === num);//false
// console.log(str1 == boo);//true
// console.log(str1 === boo);//false

// - 11.等于(==)与严格等于(===)的区别？
//==是比较值是否相同，===是比较值和类型是否都相同
// - 12.下面代码输出的分别是什么？除了typeof还有什么方法可以判断数据类型？（数据类型判断）

// let str = "bluej";
// let num = 12306;
// let boo = false;
// let arr = [];
// let obj = {};

// console.log(typeof str);//String
// console.log(typeof num);//Number
// console.log(typeof boo);//Boolean
// console.log(typeof arr);//Object
// console.log(typeof obj);//Object
// console.log(typeof undefined);//Undefined
// console.log(typeof null);//Object

// -------------以下题目为提高题,非必做-------------
// - 写出执行结果,并解释原因（typeof）
// var x=1;
// if(function f(){}){
//     x += typeof f;
// }
// console.log(x)//typeof f=undefined(函数未定义),x='1undefined'

// - 写出执行结果,并解释原因（typeof）
// var foo = {
//         bar: function(){
//             return this.baz;
//         },
//          baz:1
//     }
// console.log(typeof (f=foo.bar)());//undefined

// - 写出执行结果,并解释原因
//const value  = 'Value is' + !!Number(['0']) ? 'yideng' : 'undefined';
//console.log(value);//yideng
//Number(['0']为0,!!Number(['0']为false,Boolean('Value is' + !!Number(['0']))为true